package com.loctek.importexport.mvp.presenter;

import com.loctek.importexport.App;
import com.loctek.importexport.base.BasePresenter;
import com.loctek.importexport.bean.getproductResponse;
import com.loctek.importexport.bean.getstoresiteResponse;
import com.loctek.importexport.bean.outstoresiteResponse;
import com.loctek.importexport.bean.switchstoresiteResponse;
import com.loctek.importexport.mvp.view.OutHousingView;
import com.loctek.importexport.mvp.view.TransferLibraryView;

import rx.Observer;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

/**
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃  神兽保佑
 * 　　　　┃　　　┃  代码无bug
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━感觉萌萌哒━━━━━━
 * <p>
 * 作者：司海林
 * 邮箱：sihailin@sina.cn
 * 时间：2018/5/31
 * 描述：
 */
public class TransferLibraryPersenter extends BasePresenter<TransferLibraryView> {
    public TransferLibraryPersenter(App app) {
        super(app);
    }


    /**
     * 获取库位信息
     *
     * @param storesite
     */
    public void getnewstoresite(String storesite) {
        getView().showProgress();
        getAppComponent().getAPIService().getstoresite("getstoresite", getApp().getToken(), storesite)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<getstoresiteResponse>() {
                    @Override
                    public void onCompleted() {
                        if (isViewAttached())
                            getView().onCompleted();
                    }

                    @Override
                    public void onError(Throwable e) {
                        e.printStackTrace();
                        if (isViewAttached()) {
                            getView().showMsg("服务异常，请稍后再试");
                        }
                    }

                    @Override
                    public void onNext(getstoresiteResponse response) {
                        if (response.isSuccess()) {
                            getView().getnewstoresite(response);
                        } else {
                            getView().showMsg(response.getMessage()+"");
                        }
                    }
                });
    }

    /**
     * 获取库位信息
     *
     * @param storesite
     */
    public void getoldstoresite(String storesite) {
        getView().showProgress();
        getAppComponent().getAPIService().getstoresite("getstoresite", getApp().getToken(), storesite)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<getstoresiteResponse>() {
                    @Override
                    public void onCompleted() {
                        if (isViewAttached())
                            getView().onCompleted();
                    }

                    @Override
                    public void onError(Throwable e) {
                        e.printStackTrace();
                        if (isViewAttached()) {
                            getView().showMsg("服务异常，请稍后再试");
                        }
                    }

                    @Override
                    public void onNext(getstoresiteResponse response) {
                        if (response.isSuccess()) {
                            getView().getoldstoresite(response);
                        } else {
                            getView().showMsg(response.getMessage()+"");
                        }
                    }
                });
    }


    /**
     * 切库
     *
     * @param oldsite
     * @param newsite
     * @param products
     */
    public void switchstoresite(String oldsite, String newsite, String products) {
        getView().showProgress();
        getAppComponent().getAPIService().switchstoresite("switchstoresite", getApp().getToken(), oldsite, newsite, products)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<switchstoresiteResponse>() {
                    @Override
                    public void onCompleted() {
                        if (isViewAttached())
                            getView().onCompleted();
                    }

                    @Override
                    public void onError(Throwable e) {
                        e.printStackTrace();
                        if (isViewAttached()) {
                            getView().onError(e);
                        }
                    }

                    @Override
                    public void onNext(switchstoresiteResponse response) {
                        if (response.isSuccess()) {
                            getView().switchstoresite(response);
                        } else {
                            getView().showMsg(response.getMessage() + "");
                        }
                    }
                });
    }
}
